<?php

/**
 * Classe que representa um aluno bolsista
 * @author Sergio Lisan
 *
 */
class Aluno {

	var $id;
	var $cpf;
	var $nome;
	var $campus;
	var $estado;
	var $residencia;
	var $bolsas;

	public function __construct() {

	}

}

/**
 * Classe abstrata que representa o Estado do aluno na universidade. Cada estado possui uma serie
 * de restricoes de modalidades de bolsas e devem implementar uma funcao de validacao
 * @author sergio
 *
 */
abstract class EstadoAluno {

	var $restricoes;

	public function __construct() {
	}

	/**
	 * metodo de validacao que verifica se o aluno
	 * @param Bolsa $bolsa
	 * @return retorna um erro ou mensagem de sucesso
	 */
	public function validate($bolsa) {
		if (in_array($bolsa, $restricoes) )
			return false;
		else
			return true;
	}

}

/**
 * Classe que representa um aluno que esta sendo beneficiado com residencia pela Universidade
 * @author sergio lisan
 *
 */
class Residente extends Aluno {
	
	public function __construct() {
	}
}

/**
 * classe que representa um aluno regularmente matriculado na universidade
 * @author sergio
 *
 */
class Regular extends Aluno {

	public function __construct() {
	}
}

/**
 * classe que representa um aluno que esta em espera de residencia.
 * @author sergio
 *
 */
class EmEspera extends Aluno {

	public function __construct() {
	}
}


?>